package com.vviton.zyhj.admin.service.impl;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.vviton.zyhj.admin.service.ZjzfxxPtService;
import com.vviton.zyhj.common.base.BaseService;
import com.vviton.zyhj.common.common.CodeConstants;
import com.vviton.zyhj.common.common.CommonConstants;
import com.vviton.zyhj.common.dao.TYyxtHzglJsjlbMapper;
import com.vviton.zyhj.common.dao.TYyxtJyglZjzfxxPtMapper;
import com.vviton.zyhj.common.entity.TYyxtHzglJsjlb;
import com.vviton.zyhj.common.entity.TYyxtJyglZjzfxxPt;
import com.vviton.zyhj.common.utils.DateUtils;
import com.vviton.zyhj.common.view.ParamZjzfxx;

/**
 * ClassName: ZjzfxxPtServiceImpl <br/>
 * Function: 用户资金支付信息实现层. <br/>
 * Date: 2016年12月7日 上午10:13:37 <br/>
 *
 * @author zhucb
 * @version 1.0
 * @since JDK 1.7
 */
@Service("zjzfxxPtService")
public class ZjzfxxPtServiceImpl extends BaseService implements ZjzfxxPtService {

    /** 日志 **/
    private static Logger logger = Logger.getLogger(ZjzfxxPtServiceImpl.class);

    /** 资金支付Mapper **/
    @Autowired
    private TYyxtJyglZjzfxxPtMapper tYyxtJyglZjzfxxPtMapper;

    /** 结算记录Mapper **/
    @Autowired
    private TYyxtHzglJsjlbMapper tYyxtHzglJsjlbMapper;

    /**
     * insertZjzfxxPt,新增用户资金支付信息(平台)信息. <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月7日 <br/>
     * =============================================================== <br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月7日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param paramZjzfxx 用户资金支付信息
     * @return int
     * @since JDK 1.7
     */
    @Override
    public int insertZjzfxxPt(ParamZjzfxx paramZjzfxx) {
        logger.info("新增用户资金支付信息(平台)信息开始，---");
        int cnt = 0;
        Date date = new Date();
        TYyxtJyglZjzfxxPt zjzfxxPt = new TYyxtJyglZjzfxxPt();
        String id = this.getKey();
        logger.info("---生成主键key----：" + id);
        zjzfxxPt.setId(id);
        zjzfxxPt.setKtid(paramZjzfxx.getKtid());
        zjzfxxPt.setZh(paramZjzfxx.getZh());
        zjzfxxPt.setYwlb(CodeConstants.YWLB_JYFK);
        zjzfxxPt.setZffs(CodeConstants.ZFFS_ZFB);
        zjzfxxPt.setZfje(Double.parseDouble(paramZjzfxx.getZfje()));
        zjzfxxPt.setZjjssj(DateUtils.parseHbaseTimeToDate(paramZjzfxx.getZjjssj() + "000"));
        zjzfxxPt.setZfjyh(paramZjzfxx.getZfjyh());
        zjzfxxPt.setSkfzhlx(CodeConstants.SKFZHLX_ZFB);
        zjzfxxPt.setSkfzh(paramZjzfxx.getSkfzh());
        zjzfxxPt.setSkfxm(paramZjzfxx.getSkfxm());
        zjzfxxPt.setJyzt(CodeConstants.JYZT_CG);
        zjzfxxPt.setDelflag(CommonConstants.DELFLAG_ADD);
        zjzfxxPt.setVersions(this.getVersion());
        zjzfxxPt.setOperatercode(paramZjzfxx.getZh());
        zjzfxxPt.setOperatetime(date);
        zjzfxxPt.setCreatercode(paramZjzfxx.getZh());
        zjzfxxPt.setCreatertime(date);
        cnt = tYyxtJyglZjzfxxPtMapper.insertZjzfxxPt(zjzfxxPt);
        logger.info("新增用户资金支付信息(平台)信息结束：新增条数：" + cnt);
        return cnt;
    }

    /**
     * updateJsjlb,(更新结算记录信息). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月7日 <br/>
     * =============================================================== <br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月7日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param paramZjzfxx 结算信息
     * @return int
     * @since JDK 1.7
     */
    @Override
    public int updateJsjlb(ParamZjzfxx paramZjzfxx) {
        logger.info("更新结算记录信息开始---");
        int cnt = 0;
        TYyxtHzglJsjlb jsjlb = new TYyxtHzglJsjlb();
        if (CodeConstants.JSZT_YJS.equals(paramZjzfxx.getFlag())) {
            jsjlb.setJsfzh(paramZjzfxx.getJsfzh());
            jsjlb.setZfbddbh(paramZjzfxx.getZfbddbh());
            jsjlb.setJsje(new BigDecimal(paramZjzfxx.getZfje()));
            jsjlb.setZfblsh(paramZjzfxx.getZfjyh());
            jsjlb.setJssj(DateUtils.parseHbaseTimeToDate(paramZjzfxx.getZjjssj() + "000"));
            jsjlb.setJszt(CodeConstants.JSZT_YJS);
            jsjlb.setDelflag(CommonConstants.DELFLAG_UPDATE);
            jsjlb.setVersions(this.getVersion());
            jsjlb.setOperatercode(paramZjzfxx.getZh());
            jsjlb.setOperatetime(new Date());
        } else {
            jsjlb.setJsfzh(paramZjzfxx.getJsfzh());
            jsjlb.setZfbddbh(paramZjzfxx.getZfbddbh());
            jsjlb.setJsje(new BigDecimal(paramZjzfxx.getZfje()));
            jsjlb.setZfblsh(paramZjzfxx.getZfjyh());
            jsjlb.setJssj(DateUtils.parseHbaseTimeToDate(paramZjzfxx.getZjjssj() + "000"));
            jsjlb.setJszt(CodeConstants.JSZT_WJS);
            jsjlb.setDelflag(CommonConstants.DELFLAG_UPDATE);
            jsjlb.setVersions(this.getVersion());
            jsjlb.setOperatercode(paramZjzfxx.getZh());
            jsjlb.setOperatetime(new Date());
        }
        cnt = tYyxtHzglJsjlbMapper.updateJsjlb(jsjlb);
        logger.info("更新结算记录信息结束，更新条数：" + cnt);
        return cnt;
    }

    /**
     * getJsjlbByZfbddbh,(根据支付宝订单编号获取结算信息). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月14日 <br/>
     * =============================================================== <br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月14日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param id 编号
     * @return TYyxtHzglJsjlb
     * @since JDK 1.7
     */
    @Override
    public TYyxtHzglJsjlb getJsjlbByZfbddbh(String id) {

        return tYyxtHzglJsjlbMapper.getJsjlbByZfbddbh(id);
    }
}
